home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
progtool
/
modula2
/
module
/
joyevent.mod
< prev
next >
Wrap
Text File
|
1995-11-25
|
1KB
|
49 lines
IMPLEMENTATION MODULE JoyEvent;
IMPORT XBIOS104;
FROM SYSTEM IMPORT ADR,ADDRESS;
CONST MoveA0 = 13E8H;
RTS = 4E75H;
TYPE RoutineRec = RECORD
Opcode : CARDINAL;
Offset : CARDINAL;
Adresse : ADDRESS;
Return : CARDINAL;
END(*RECORD*);
VAR Vector : XBIOS104.KBVectorPtr;
Routine : RoutineRec;
OldVec : ADDRESS;
Wert : BITSET;
PROCEDURE InitJoyEvent;
BEGIN
Routine.Opcode:=MoveA0;
Routine.Offset :=2;
Routine.Adresse:=ADR(Wert);
Routine.Return:=RTS;
Vector:=XBIOS104.KeyboardVectors();
OldVec:=Vector^.joyvec;
Vector^.joyvec:=ADR(Routine.Opcode);
Wert:={};
END InitJoyEvent;
PROCEDURE Joystick(VAR Event: JoyEvents);
BEGIN
Event := NoEvents;
IF 10 IN Wert THEN INCL(Event, Right);END(*IF*);
IF 11 IN Wert THEN INCL(Event,Left);END(*IF*);
IF 9 IN Wert THEN INCL(Event,Up);END(*IF*);
IF 8 IN Wert THEN INCL(Event,Down);END(*IF*);
END Joystick;
PROCEDURE TermJoyEvent;
BEGIN
Vector:=XBIOS104.KeyboardVectors();
Vector^.joyvec:=OldVec;
END TermJoyEvent;
END JoyEvent.